package cn.yuan.xiaoyu.calendarmodule.utils;

import java.util.Calendar;

/**
 * Created by yukuoyuan on 2017/3/30.
 * 这是一个日期工具类
 */
public class CalendarUtils {
    private static CalendarUtils sInstance;

    private CalendarUtils() {
    }

    public static CalendarUtils instance() {
        if (sInstance == null) {
            synchronized (CalendarUtils.class) {
                if (sInstance == null) {
                    sInstance = new CalendarUtils();
                }
            }
        }
        return sInstance;
    }

    /**
     * 通过年份和月份 得到当月有多少天
     *
     * @param year  所选年
     * @param month 所选月份
     * @return
     */
    public static int getMonthDaysNumber(int year, int month) {
        month++;
        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                return 31;
            case 4:
            case 6:
            case 9:
            case 11:
                return 30;
            case 2:
                if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
                    return 29;
                } else {
                    return 28;
                }
            default:
                return -1;
        }
    }

    /**
     * 返回当前月份1号位于周几
     *
     * @param year  年份
     * @param month 月份，传入系统获取的，不需要正常的
     * @return 日：1		一：2		二：3		三：4		四：5		五：6		六：7
     */
    public static int getFirstDayInWeek(int year, int month) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(year, month, 1);
        return calendar.get(Calendar.DAY_OF_WEEK);
    }

}

